package edu.upn.sigemfi.plt.beans;

import edu.upn.sigemfi.plt.bc.TarjetaDebitoDelegate;
import edu.upn.sigemfi.plt.be.TarjetaDebito;
import edu.upn.sigemfi.plt.be.EstadoTarjetaDebito;
import java.util.List;
import javax.faces.model.SelectItem;
import edu.upn.sigemfi.seg.beans.AbstractController;

/**
 *
 * @author Gerard
 */
public class TarjetaDebitoController extends AbstractController {

    private TarjetaDebitoDelegate tarjetaDebitoDelegado;
    private TarjetaDebito tarjetaDebito;

    public TarjetaDebitoController() {
        tarjetaDebitoDelegado = new TarjetaDebitoDelegate();
    }
public String index() {
        return "index";
    }

    public String mostrar(){
        return "mostrar";
    }

    public String cancelar() {
        tarjetaDebito = null;
        return "listar";
    }

    public String tarjetaDebito() {
        return "tarjetadebito";
    }

    public String editar() {
        return "editar";
    }

    public String nuevo() {
        tarjetaDebito = new TarjetaDebito();
        return "nuevo";
    }

    public String registrar() {
        try {
//Solo para llenar la tabla seran valores por defecto
            tarjetaDebito.setClaveDigital("0000");
            tarjetaDebito.setClaveInternet("0000");
            tarjetaDebito.setClaveTarjeta("0000");
            tarjetaDebito.setEstado(EstadoTarjetaDebito.Creado);
            tarjetaDebitoDelegado.crear(tarjetaDebito);
            info("La Tarjeta se Creó Correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "listar";
    }

    public String actualizar() {
        try {
            tarjetaDebitoDelegado.editar(tarjetaDebito);
            info("La Tarjeta se Actualizó Correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "volver";
    }

    public String eliminar() {
        try {
            tarjetaDebitoDelegado.eliminar(tarjetaDebito);
            info("La Tarjeta se Eliminó Correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "volver";
    }

    public TarjetaDebito buscar(Long codigo) {
        try {
            return tarjetaDebitoDelegado.buscar(codigo);
        } catch (Exception e) {
            error(e.getMessage());
        }
        return null;
    }

    public List<TarjetaDebito> getTarjetaDebitos() {
        try {
            return tarjetaDebitoDelegado.listar();
        } catch (Exception e) {
            error(e.getMessage());
        }
        return null;
    }

    public TarjetaDebito getTarjetaDebito() {
        return tarjetaDebito;
    }

    public SelectItem[] getEstadosTarjeta() {
        EstadoTarjetaDebito[] estadosTarjeta = EstadoTarjetaDebito.values();
        SelectItem[] select = new SelectItem[estadosTarjeta.length];
        int i = 0;
        for (EstadoTarjetaDebito et : estadosTarjeta) {
            select[i++] = new SelectItem(et, et.toString());
        }
        return select;
    }

    public void setTarjetaDebito(TarjetaDebito tarjetaDebito) {
        this.tarjetaDebito = tarjetaDebito;
    }
}
